搭建一个原生 MCP 服务
什么是 MCP 服务
MCP (Model Context Protocol) 服务是一个遵循 MCP 协议规范的服务端程序,它向 AI 客户端提供工具、资源和提示功能。通过搭建 MCP 服务,我们可以将各种外部系统(如数据库、API、文件系统等)以标准化的方式暴露给 AI Agent 使用。
环境准备
在开始之前,确保你的开发环境已经安装了以下工具:
- Go 1.21 或更高版本
- Git
- 一个代码编辑器(推荐 VS Code)
首先创建项目目录并初始化 Go 模块:
mkdir mcp-server-demo
cd mcp-server-demo
go mod init github.com/yourusername/mcp-server-demo
核心依赖与项目结构
安装依赖
# 安装 JSON-RPC 库
go get github.com/sourcegraph/jsonrpc2
# 安装 UUID 生成库
go get github.com/google/uuid
# 安装日志库
go get github.com/sirupsen/logrus
# 安装配置管理库
go get github.com/spf13/viper
项目结构
mcp-server-demo/
├── cmd/
│ └── server/
│ └── main.go
├── internal/
│ ├── mcp/
│ │ ├── server.go
│ │ ├── transport.go
│ │ └── protocol.go
│ ├── tools/
│ │ ├── manager.go
│ │ ├── file_tool.go
│ │ └── calc_tool.go
│ ├── resources/
│ │ └── manager.go
│ └── config/
│ └── config.go
├── pkg/
│ └── types/
│ └── mcp.go
├── configs/
│ └── config.yaml